#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//int main()
//{
//	int a = 0; int arr[2000] = { 0 };
//	while (scanf("%d", &a) != EOF)
//	{
//		float sum = 0; int count = 0;
//		int i = 0; int a_count = 0;
//		float ad = 0;
//		for (i = 0; i < a; i++)
//		{
//			scanf("%d", &arr[i]);
//		}
//		for (i = 0; i < a; i++)
//		{
//			if (arr[i] > 0)
//			{
//				sum += arr[i];
//				a_count++;
//			}
//			else if (arr[i] < 0)
//			{
//				count++;
//			}
//		}
//		printf("%d ", count);
//		if (a_count != 0)
//		{
//			 ad = sum / a_count;
//		}
//		printf("%.1f\n", ad);
//	}
//}
//#include<stdio.h>
//int cmp_int(const void* i1, const void* i2)
//{
//	return *((int*)i1) - *((int*)i2);
//}
//int minNumberInRotateArray(int* a, int b)
//{
//	qsort(a, b, sizeof(a[0]), cmp_int);
//	return a[0];
//}
//#include<stdio.h>
//int main()
//{
//	int a = 0; int i = 1;
//	scanf("%d", &a);
//	int aaa= a * a * a;
//	while (1)
//	{
//		
//		int count = 0;
//		int sum = 0;
//		while (count < a)
//		{
//			
//			sum += i;
//			i += 2;
//			count++;
//		}
//		
//			if (sum == aaa)
//			{
//				while (count)
//				{
//					if (count != 1)
//					{
//						printf("%d+", i - 2 * count);
//					}
//					else
//						printf("%d",i-2);
//					count--;
//				}
//				goto abc;
//			}
//			else
//				i -= (count - 1) * 2;
//	}
//abc:
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	scanf("%c", &a);
//	int n = 3;
//	int i = 0;
//	int j = 0;
//	for (i = 1; i <= n; i++)
//	{
//	
//		for(j=0;j<n-i;j++)
//		printf(" ");
//		for(j=0;j<i*2-1;j++)
//		printf("%c", a);
//		printf("\n");
//	}
//	for (i = 1; i <= n - 1; i++)
//	{
//		for (j = 0;j<i; j++)
//			printf(" ");
//		for (j = 0;j<2*(n-i)-1; j++)
//			printf("%c",a);
//		printf("\n");
//	}
//}
//#include<stdio.h>
//int main()
//{
//	float a = 0;
//	scanf("%f", &a);
//	int a1 = a;
//	while (a > 1)
//		a -= 1;
//	if (a >= 0.5)
//		a1 += 1;
//	printf("%d", a1);
//}
//#include<stdio.h>
//void rotate(int* nums, int numsSize, int k)
//{
//    int x = numsSize;
//    int i = 0; int j = 0;
//    int tmp = 0;
//    k = k % x;
//    for (i = 0; i < k; i++)
//    {
//        tmp = nums[x-1];
//        for (j = 1; j <x; j++)
//            nums[x-j] = nums[x-j-1];
//        nums[0] = tmp;
//    }
//}
#include<stdio.h>
#include<stdlib.h>
void rotate(int* nums, int numsSize, int k)
{
    k %= numsSize;
    int*a=(int*)malloc(numsSize * sizeof(int));
    memcpy(a,nums,numsSize * sizeof(int));
    if (k == 0)
      return;
    int i = 0;
    for (i = 0; i < k; i++)
    {
        a[k - i-1] = nums[numsSize-i-1];
    } 
    for (i = 0;k+i<numsSize; i++)
    {
        a[k + i] = nums[i];
    }
    memcpy(nums,a, numsSize * sizeof(int));
    free(a);
    a = NULL;
}
int main()
{
    int arr[3] = { 1,2,3 };
    rotate(arr, 3, 2);
    int i = 0;
    for(i=0;i<3;i++)
    {
        printf("%d ", arr[i]);
    }
}